Github merge de archivos borrados

Descripcion

Explicar situación en la que GitHub se comporta de una manera extraña al hacer un merge que contiene archivos borrados, no borrando dichos archivos cuando si que debería de borrarlos.

Escenario

Partimos de un escenario en el que tenemos un repositorio de GitHub con 3 ramas:

Para reproducir la situación tenemos que realizar los siguientes pasos:

Si revisamos el log vemos lo siguiente:

En el último commit (flecha azul) se ve que el archivo figura como añadido

Si miramos los dos commits que participan en el merge (flechas rojas), vemos que en uno el archivo está añadido y en el otro el archivo está borrado, y si miramos las fechas (lineas verdes) vemos que el borrado es mas reciente, por lo tanto debería de prevalecer el commit del borrado sobre el otro

Si volvemos a la situación antes de hacer la PR de develop a staging y hacemos un merge directamente desde la consola (sin hacer PR en GitHub) vemos lo siguiente:

El archivo se borra al hacer el merge, si miramos los logs vemos lo siguiente:

Como podemos ver la situación es exactamente la misma, pero el resultado es diferente, en este caso el archivo acaba borrandose.

Conclusión

Al final es cierto que GitHub se comporta de una manera anómala, pero tambien es porque se ha forzado el reset de una rama a un commit que no debería.

Todo este problema aparecio en el proyecto de Angular de la PostAcademy, no sé si en ese proyecto se produjo exactamente de la misma manera, pero algun comportamiento anómalo tuvo que haber para que las ramas llegasen a esa situación

Tags

Git | Escenario | GitHub